/*
 * Instance.h
 *
 *  Created on: Sep 5, 2012
 *      Author: v-suqil
 */

#ifndef INSTANCE_H_
#define INSTANCE_H_
#include <string>
#include "Alphabet.h"

typedef std::vector<int> value_t;
typedef std::vector<value_t*> quiver_t;

class Instance {
private:
    const Alphabet* featAlphabet;
    const Alphabet* labelAlphabet;
    char* source;
    quiver_t* fvs;
    value_t* lbs;
public:
    Instance(char* data, quiver_t* featvecs, const Alphabet *featAlpha, value_t* labelvals, const Alphabet* labelAlpha);
    Instance(quiver_t* featvecs, const Alphabet *featAlpha, value_t* labels, const Alphabet* labelAlpha);
    Instance(quiver_t* featvecs, value_t* labels);
    int size();
    quiver_t* getFeatureVectors();
    value_t* getLabels();
	virtual ~Instance();
};

#endif /* INSTANCE_H_ */
